home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
PInterfaces
/
MacOSMediaPartitionMap.p
< prev
next >
Wrap
Text File
|
1996-05-01
|
4KB
|
119 lines
{
File: MacOSMediaPartitionMap.p
Contains: MacOS Partition Map Format definitions
Version: Technology: Copland
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT MacOSMediaPartitionMap;
INTERFACE
{$ENDC}
{$IFC UNDEFINED __MACOSMEDIAPARTITIONMAP__}
{$SETC __MACOSMEDIAPARTITIONMAP__ := 1}
{$I+}
{$SETC MacOSMediaPartitionMapIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED __TYPES__}
{$I Types.p}
{$ENDC}
{$PUSH}
{$ALIGN MAC68K}
{$LibExport+}
{$IFC FOR_SYSTEM8_PREEMPTIVE }
{
* Prior to System 8 these structures are defined in SCSI.h
}
{ Signatures }
CONST
sbSIGWord = $4552; { signature word for Block 0 ('ER') }
sbMac = 1; { system type for Mac }
pMapSIG = $504D; { partition map signature ('PM') }
pdSigWord = $5453;
oldPMSigWord = $5453;
newPMSigWord = $504D;
{ Driver Descriptor Map }
TYPE
Block0Ptr = ^Block0;
Block0 = PACKED RECORD
sbSig: INTEGER; { unique value for SCSI block 0 }
sbBlkSize: INTEGER; { block size of device }
sbBlkCount: LONGINT; { number of blocks on device }
sbDevType: INTEGER; { device type }
sbDevId: INTEGER; { device id }
sbData: LONGINT; { not used }
sbDrvrCount: INTEGER; { driver descriptor count }
ddBlock: LONGINT; { 1st driver's starting block }
ddSize: INTEGER; { size of 1st driver (512-byte blks) }
ddType: INTEGER; { system type (1 for Mac+) }
ddPad: ARRAY [0..242] OF INTEGER; { ARRAY[0..242] OF INTEGER; not used }
END;
{ Driver descriptor }
DDMapPtr = ^DDMap;
DDMap = RECORD
ddBlock: LONGINT; { 1st driver's starting block }
ddSize: INTEGER; { size of 1st driver (512-byte blks) }
ddType: INTEGER; { system type (1 for Mac+) }
END;
{ Partition Map Entry }
{ packed in ".i" }
PartitionPtr = ^Partition;
Partition = PACKED RECORD
pmSig: INTEGER; { unique value for map entry blk }
pmSigPad: INTEGER; { currently unused }
pmMapBlkCnt: LONGINT; { # of blks in partition map }
pmPyPartStart: LONGINT; { physical start blk of partition }
pmPartBlkCnt: LONGINT; { # of blks in this partition }
pmPartName: PACKED ARRAY [0..31] OF UInt8; { ASCII partition name }
pmParType: PACKED ARRAY [0..31] OF UInt8; { ASCII partition type }
pmLgDataStart: LONGINT; { log. # of partition's 1st data blk }
pmDataCnt: LONGINT; { # of blks in partition's data area }
pmPartStatus: LONGINT; { bit field for partition status }
pmLgBootStart: LONGINT; { log. blk of partition's boot code }
pmBootSize: LONGINT; { number of bytes in boot code }
pmBootAddr: LONGINT; { memory load address of boot code }
pmBootAddr2: LONGINT; { currently unused }
pmBootEntry: LONGINT; { entry point of boot code }
pmBootEntry2: LONGINT; { currently unused }
pmBootCksum: LONGINT; { checksum of boot code }
pmProcessor: PACKED ARRAY [0..15] OF UInt8; { ASCII for the processor type }
pmPad: ARRAY [0..187] OF INTEGER; { ARRAY[0..187] OF INTEGER; not used }
END;
{$ENDC}
{$ALIGN RESET}
{$POP}
{$SETC UsingIncludes := MacOSMediaPartitionMapIncludes}
{$ENDC} {__MACOSMEDIAPARTITIONMAP__}
{$IFC NOT UsingIncludes}
END.
{$ENDC}